<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <!-- 上述3个meta标签*必须*放在最前面，任何其他内容都*必须*跟随其后！ -->
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0,user-scalable=no,minimal-ui">
    <meta name="description" content="">
    <meta name="author" content="">
    <link rel="icon" href="../img/asset-favico.ico">
    <title>编辑信息</title>
    <link rel="stylesheet" href="../css/page-health-orderInfo.css" />
    <link rel="stylesheet" href="../plugins/elementui/index.css" />
    <script src="../plugins/jquery/dist/jquery.min.js"></script>
    <script src="../plugins/healthmobile.js"></script>
    <script src="../plugins/datapicker/datePicker.js"></script>
    <script src="../plugins/vue/vue.js"></script>
    <script src="../plugins/vue/axios-0.18.0.js"></script>
    <script src="../plugins/elementui/index.js"></script>
</head>
<body data-spy="scroll" data-target="#myNavbar" data-offset="150">
<div id="app" class="app">
    <!-- 页面头部 -->
    <div class="top-header">
        <span class="f-left"><i class="icon-back" onclick="history.go(-1)"></i></span>
        <span class="center">众阳健康</span>
        <span class="f-right"><i class="icon-more"></i></span>
    </div>
    <!-- 页面内容 -->
    <div class="contentBox">
        <div class="form-info">
            <div class="info-title">
                <span class="name">会员信息</span>
            </div>
            <form class="info-form">
                <div  class="input-row">
                    <label>用户名</label>
                    <input :disabled="isLock" v-model="userInfo.name" type="text" class="input-clear" placeholder="请输入姓名">
                </div>
                <div class="input-row single-radio">
                    <label class="radio-title">性别</label>
                    <div   class="radio-list">
                        <div class="radio">
                            <input :disabled="isLock"  v-model="userInfo.sex" id="item1" type="radio" name="sex" value="1" checked>
                            <label for="item1"></label>
                            <span>男</span>
                        </div>
                        <div class="radio">
                            <input :disabled="isLock"  v-model="userInfo.sex" id="item2" type="radio" name="sex" value="2">
                            <label for="item2"></label>
                            <span>女</span>
                        </div>
                    </div>
                </div>
                <div class="input-row">
                    <label>手机号</label>
                    <input disabled="true" v-model="userInfo.phoneNumber" type="text" class="input-clear" placeholder="请输入手机号">
                    <el-button :disabled="isLock"  @click="dialogVisible = true" type="primary" icon="el-icon-edit" circle></el-button>

                </div>
                <div class="input-row">
                    <label>身份证号</label>
                    <input :disabled="isLock" v-model="userInfo.idCard" type="text" class="input-clear" placeholder="请输入身份证号">
                </div>
                <div class="input-row">
                    <label>生日</label>
                    <input disabled="true" v-model="userInfo.birthday" type="text" class="input-clear" placeholder="请输入生日">
                </div>
                <div class="input-row">
                    <label>邮箱</label>
                    <input :disabled="isLock" v-model="userInfo.email" type="text" class="input-clear" placeholder="请输入邮箱">
                </div>
                <div class="input-row">
                    <label>注册日期</label>
                    <i class="icon-date" class="picktime"></i>
                    <input disabled="true" v-model="userInfo.regTime" type="text" class="picktime" readonly>
                </div>
            </form>
            <span>修改个人信息请点击下方修改</span>
            <div class="box-button">
                <button @click="submitInfor()" type="button" class="btn order-btn">{{innerTextBt}}</button>
            </div>
        </div>
    </div>
    <el-dialog
            title="修改手机号将会重新登录!"
            :visible.sync="dialogVisible"
            width="90%"
            :before-close="handleClose">

<!--            <el-form ref="myForm" :model="myForm" :rules="rules" size="small" label-width="200px">-->
                <div class="input-row">
                    <label>手机号</label>
                    <input  v-model="myForm.phone" type="text" class="input-clear" placeholder="请输入新手机号">
                    <input id="validateCodeButton" @click="sendValidateCode()" type="button" style="font-size: 12px" value="获取验证码">
                </div>
<!--                <div class="input-row">-->
<!--                    <label>手机号</label>-->
<!--                    <div class="loginInput">-->
<!--                        <input v-model="loginInfo.telephone" id='account' type="text" placeholder="请输入手机号">-->
<!--                        <input id="validateCodeButton" @click="sendValidateCode()" type="button" style="font-size: 12px" value="获取验证码">-->
<!--                    </div>-->
<!--                </div>-->
                <div class="input-row">
                    <label>验证码</label>
                    <input  v-model="myForm.message" type="text" class="input-clear" placeholder="请输入验证码">
                </div>
<!--            </el-form>-->

        <span slot="footer" class="dialog-footer">
    <el-button size="mini" @click="dialogVisible = false">取 消</el-button>
    <el-button size="mini" type="primary" @click="confirmEditPhoneMessage">确 定</el-button>
        </span>
    </el-dialog>
</div>
<script>
    var vue = new Vue({
        el:'#app',
        data:{
            myForm: {
                phone: undefined,
                message: undefined,
            },
            //修改手机号dialog
            dialogVisible:false,
            //页面按钮显示文字
            innerTextBt:"修改个人信息",
            // 表单属性是否可被编辑
            isLock:"true",
            userInfo:{},
            rules: {
                newPhone: [{
                    required: true,
                    message: '请输入新手机号',
                    trigger: 'blur'
                }],
                message: [{
                    required: true,
                    message: '请输入验证码',
                    trigger: 'blur'
                }],
            },
        },
        methods:{
            //确认手机号是否修改成功
            confirmEditPhoneMessage(){
                //获取用户输入的手机号
                var telephone = this.myForm.phone;
                //调用js方法，校验输入的手机号是否合法
                if(!checkTelephone(telephone)){
                    //校验不通过，提示错误信息
                    this.$message.error("请输入正确的手机号");
                    return false;
                }
                //发送ajax请求，将表单数据提交到Controller进行登录处理
                axios.post("/member/confirmEditPhone.do",this.myForm).then((res) => {
                    if(res.data.flag){
                        this.$message({
                            type:"success",
                            message:res.data.message
                        })
                        // 给手机号重新赋值
                        this.userInfo.phoneNumber = this.myForm.phone
                        // 验证成功,关闭dialog
                       this.dialogVisible = false
                    }else{
                        this.$message.error(res.data.message);
                    }
                });
            },
            //发送验证码
            sendValidateCode(){
                //获取用户输入的手机号
                var telephone = this.myForm.phone;
                if (telephone === this.userInfo.phoneNumber){
                    this.$message("新旧手机号一致")
                    return false;
                }
                //调用js方法，校验输入的手机号是否合法
                if(!checkTelephone(telephone)){
                    //校验不通过，提示错误信息
                    this.$message.error("请输入正确的手机号");
                    return false;
                }
                //在按钮上显示30秒倒计时效果
                validateCodeButton = $("#validateCodeButton")[0];//锁定dom对象
                clock = window.setInterval(doLoop,1000);//定时器方法，可以实现每隔指定的时间调用指定的方法
                //发送ajax请求，为用户发送手机验证码
                axios.post("/validateCode/send4Edit.do?telephone=" + telephone).then((res) => {
                    if(!res.data.flag){
                        //短信验证码发送失败
                        this.$message.error(res.data.message);
                    }
                });
            },
            //提交修改
            submitInfor() {
                if (this.innerTextBt === "修改个人信息") {
                    //设置信息可编辑
                    this.isLock = false;
                    //设置按钮文字为保存信息
                    this.innerTextBt = "保存信息"
                } else {
                    // 保存信息了
                    //对用户输入的身份证号进行校验
                    var idCard = this.userInfo.idCard;
                    if (!checkIdCard(idCard)) {
                        //身份证号输入不合法
                        this.$message.error("身份证号码输入错误，请重新输入");
                        return false;
                    }
                    //发送ajax请求，提交表单数据到后台进行业务处理
                    axios.post("/member/save.do", this.userInfo).then((res) => {
                        if (res.data.flag) {
                            //保存成功
                            //设置信息不可编辑
                            this.isLock = true;
                            //设置按钮文字为修改信息
                            this.innerTextBt = "修改个人信息"
                            this.$message({
                                type:"success",
                                message:res.data.message
                            })
                            // 判断返回的手机号和提交表单时的手机号是否一致
                            if (res.data.data.phoneNumber===this.myForm.phone){
                                location.reload();
                                // 前后端手机号不一致,需要重新刷新页面
                            }else {
                                this.userInfo=res.data.data
                                //否则不重新刷新页面
                            }
                        } else {
                            //保存失败，提示信息
                            this.$message.error(res.data.message);
                        }
                    });
                }
            }
        },
        mounted(){
            //发送ajax请求，根据cookie查询对应的用户信息，用于页面展示
            axios.post("/member/findMemberByCookie.do").then((res) =>{
                if(res.data.flag){
                    this.userInfo = res.data.data;
                }else {
                    //没有登录,跳转到登录页面
                    window.location.href =res.data.data;
                }
            });
        }
    });
</script>
<script>
    //日期控件
    var calendar = new datePicker();
    calendar.init({
        'trigger': '.picktime',/*按钮选择器，用于触发弹出插件*/
        'type': 'date',/*模式：date日期；datetime日期时间；time时间；ym年月；*/
        'minDate': getSpecifiedDate(new Date(),1),/*最小日期*/
        'maxDate': getSpecifiedDate(new Date(),30),/*最大日期*/
        'onSubmit': function() { /*确认时触发事件*/
            //var theSelectData = calendar.value;
        },
        'onClose': function() { /*取消时触发事件*/ }
    });
</script>
</body>
</html>